home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / utilities / misc / sm_1_32.lha / SM / SM.doc < prev    next >
Encoding:
Text File  |  1994-06-24  |  29.0 KB  |  766 lines

  1.  
  2.  
  3.                    ScreenManager by Bernhard Möllemann
  4.                           all rights reserved
  5.  
  6.              English .doc-file written by Frank 'Franky' Neumann
  7.  
  8.            An utility to deal with public screens under AmigaOS2.0
  9.  
  10.                               Version V1.32
  11.  
  12. A note at the beginning: The program as well as this document require a
  13. certain knowledge of the Amiga's operating system, especially AmigaOS2.0.
  14. It might not be suitable for beginners. - the translator
  15.  
  16.  
  17. ScreenManager (SM) is a small CLI utility used to open, close or modify
  18. public screens and retrieve information about them. Screens can be opened
  19. with user-selectable colors and DrawInfos (they determine which color is
  20. used for highlighting). The resolution is also selectable from a wide range.
  21.   On the other hand SM can also be used to make a certain screen the system's
  22. default screen, or to change the screen modes of other public screens.
  23. Finally, it is possible to view a list of all currently open screens in the
  24. system and to get informed about resolution and other properties of screens.
  25.  
  26. This document is split into the following six sections:
  27.   Disclaimer
  28.   CLI
  29.   Examples
  30.   Workbench
  31.   HotKeys
  32.   At the end
  33.  
  34. Everybody is obligated to read the disclaimer! Afterwards, the "Examples"
  35. section may be the most interesting part for those impatient
  36. wanna-see-something people. But you will have to read the entire document
  37. to fully understand the power of ScreenManager.
  38.  
  39.  
  40.                                  Disclaimer
  41.                                  ----------
  42.  
  43. The program ScreenManager is Copyright 1993 by Bernhard Möllemann.
  44.  
  45. This program is freely distributable as long as the following conditions
  46. and terms are fulfilled:
  47.  
  48.  - All files of this package must be copied in this arrangement:
  49.      SM/ScreenManager
  50.      SM/ScreenManager.info
  51.      SM/SM.doc
  52.      SM/SM.anl
  53.      SM/SM.ver
  54.      SM/SM.doc.info
  55.      SM/SM.anl.info
  56.      SM/SM.ver.info
  57.      SM.info
  58.      SM.displayme
  59.  
  60.  - All files must remain unmodified. If you want to distribute them in
  61.    archived format, you must use LhA to archive them, and name the
  62.    archive either SM.lha or SM_1_32.lha.
  63.  
  64.  - It is strictly forbidden to make any kind of profit by selling,
  65.    distributing or copying this package.
  66.  
  67.  - Distribution via Public Domain disk series is limited to the those
  68.    listed below:
  69.      AmigaLibDisks of Fred Fish
  70.      AUGS (Amiga User Group Switzerland)
  71.      AmigaJUICE
  72.      SAUG (Saarbrueckener Amiga User Group)
  73.      Time
  74.  
  75.  - It may not be put on a CD-ROM disk without my written permission.
  76.    Permission for the CD 'Meeting Pearls vol. #1' is hereby granted.
  77.  
  78. If you want to distribute the package in any way that violates any of
  79. the above conditions, you have to get a written permission from the author.
  80.  
  81. You might get this from:
  82.  
  83.     Bernhard Möllemann
  84.     Luisenstraße 17
  85.  
  86.     76137 Karlsruhe
  87.     Germany
  88.  
  89. You use the program at your own risk. The author can not be made
  90. responsible for any damage which is caused by this program.
  91.  
  92.  
  93.  
  94.                                  CLI
  95.                                  ---
  96.  
  97. ScreenManager was written to control the Public Screen feature of the
  98. Amiga. It is not (YET!) possible to achieve this by using the mouse.
  99. However, this stuff will be implemented in the next months. (The author
  100. does _NOT_ need it, being YASE (yet another shell enthusiast ;-) (The
  101. translator is, too ;-))
  102.  
  103. As Public Screens are only available in version 2.0 (and above) of AmigaOS,
  104. you need at least that version to run ScreenManager.
  105.  
  106. There are some different tasks which ScreenManager can perform:
  107.   open a screen (really great, eh?)
  108.   close a screen
  109.   print informations about a screen or resolution
  110.   print a list of all resolutions
  111.   change a screen
  112.   change global settings
  113.  
  114.  
  115. This is accomplished by a call to ScreenManager with one or more of the
  116. following options: (don't be scared by their size, it looks worse than it
  117. actually is !)
  118.   NAME:         sets name of a screen
  119.  
  120.   OPEN:         opens a new screen
  121.   CLOSE:        closes a certain screen
  122.   INFO:         provides some information about a screen
  123.   LIST:         provides a listing of all screens or modes
  124.  
  125.   EXPERT/FORCE: provides extended information and disables some checks
  126.   QUIET:        do not print errors or warnings
  127.  
  128.   TITLE:        supplies the screen's title used with OPEN
  129.   DEPTH/PLANES: sets the number of bitplanes used with the OPEN command
  130.   MODE:         sets the resolution used with OPEN. Names from ScreenMode
  131.   DISPID:       sets the DisplayID of a to be opened screen, alike MODE
  132.   SIZE/POS:     sets the size of a screen used with OPEN and the position
  133.                 when moving a screen
  134.   DISPCLIP:     sets the size of the visible portion of a screen, used with
  135.                 OPEN
  136.   COLORS:       sets colors, used with OPEN.
  137.   PENS:         sets color numbers for DrawInfo
  138.   NODRAG:        inhibits screen from being dragged
  139.   EXCLUSIVE:    this screen will not share its display
  140.   INTERLEAVED:    use interleaved bitmaps
  141.   PARENT:        makes this screen child of another
  142.   FONT:         sets the font that is to be used when opening a screen
  143.   FONTSIZE:     sets the size of the font mentioned above
  144.  
  145.   CLOSEGAD:     provides a screen with a CLOSE gadget
  146.   AUTOCLOSE:    closes a screen when its last window is closed
  147.   CX_TOFRONT:   sets the HotKey that brings a screen to the front
  148.   CX_DEFAULT:   sets the HotKey that makes a screen the system's default
  149.                 screen
  150.   CX_PRIORITY:  sets the priority under which HotKeys are installed
  151.  
  152.   SHANGHAI:     turns on Shanghai mode
  153.   NOSHANGHAI:   turns off Shanghai mode
  154.   POPPUB:       turns on Poppub mode
  155.   NOPOPPUB:     turns off Poppub mode
  156.   TOFRONT:      bring a screen to the front
  157.   TOBACK:       bring a screen to the back
  158.   DEFAULT:      makes a screen the system's default screen
  159.  
  160. Looks like quite a bunch of choices, and even mighty complicated, eh ?
  161. But don't surrender too early, basically there are just 6 main operations,
  162. everything else is just arguments for these operations.
  163.  
  164.  
  165.  
  166. 1.1) OPEN
  167.  
  168. Opens a new screen. If the screen already exists under the given name,
  169. an error message is printed out. These arguments can be given with OPEN:
  170.  
  171.   1.1.1)  NAME:  Name of the screen.
  172.     This is the name by which the screen is introduced to the system
  173.     as a public screen. It is also used as the screen's title if no
  174.     title is given. This argument is essential for OPEN.
  175.  
  176.   1.1.2)  TITLE:  The title of a new screen.
  177.     The text which appears in the titlebar of the screen (unless the
  178.     active window sets its own title).
  179.  
  180.   1.1.3)  DEPTH/PLANES:  Number of bitplanes.
  181.     With this value you set the maximum number of colors that can be
  182.     simultaneously displayed, in this way: # of colors = 2^# of planes.
  183.     For different graphic modes, there are different limitations on the
  184.     value of DEPTH. If these limits are exceeded, you will get a
  185.     corresponding error message.
  186.     The default is obtained from the system's default screen.
  187.  
  188.   1.1.4)  MODE:  Determines the graphics mode (and thus the resolution).
  189.     You just provide a ScreenMode name, like those found in the ScreenMode
  190.     preferences tool. However, upper/lower case does not matter.
  191.  
  192.     As these names sometimes change in new releases of the OS, it is
  193.     possible to use a pattern in the mode name.
  194.  
  195.     If you don't want to use these sometimes longish mode names, you can
  196.     also select the screen mode with a letter combination where each
  197.     letter represents a certain property. It depends on your graphics
  198.     hardware (ECS, AA, WB emulation on a graphic board...) and monitor
  199.     (Multiscan,...) which modes are available and how you may combine
  200.     these.
  201.  
  202.     If a certain mode is not available, you will be told so in an error
  203.     message.
  204.  
  205.     These are the letters you can use:
  206.       H: HiRes        (Default value: LoRes)
  207.       L: Lace         (Default value: no interlace)
  208.       S: SuperHiRes
  209.       E: ExtraHalfBright
  210.       V: VGA
  211.       P: Productivity
  212.       A: A2024 at 10 Hz
  213.       F: A2024 at 15 Hz
  214.       X: HAM
  215.  
  216.     The desired mode is simply selected by concatenating the letters
  217.     defining it - like in  MODE=SL  for SuperHiRes-Lace.
  218.  
  219.     The default mode is copied from the system's default screen.
  220.  
  221.   1.1.5)  DISPID:  DisplayID of the screen that is to be opened.
  222.     Can be used as an alternative to MODE. However, only one of these two
  223.     options may be used at a time, not both.
  224.  
  225.     Legal values for DisplayID can be found in the C include file
  226.     graphics/displayinfo.h, always assuming the desired monitor is
  227.     available. (This list can also be found from the output of typing
  228.     'ScreenManager LIST DISPID'.)
  229.  
  230.     ScreenManager does not support the DualPlayfield-mode. So DisplayID's
  231.     with this property are rejected.
  232.  
  233.     The value of DISPID must be given as a hexadecimal value. It may be
  234.     preceeded by a '$' or the C style '0x'.
  235.  
  236.   1.1.6)  SIZE:  Determines the size of a screen in pixels.
  237.     The default is using text-overscan. The size is written in the format
  238.     LEFT,TOP,WIDTH,HEIGHT.
  239.  
  240.     As WIDTH and HEIGHT are probably used more often than LEFT and TOP,
  241.     they (WIDTH, HEIGHT) are used when only 2 values are given. To help
  242.     readability, they may also be written as WIDTHxHEIGHT instead of
  243.     WIDTH,HEIGHT.
  244.  
  245.     To cope with overscan sizes more comfortably, you may also directly
  246.     use the names of the Overscan areas that the system offers.
  247.  
  248.     Legal Overscan names are:
  249.       OSCAN_NORM  Hardware default. This is the 'official' resolution as
  250.                   stated by Commodore.
  251.       OSCAN_TXT   Text overscan. This is set in the Preferences program
  252.                   'Overscan'. Text must be readable in the edges of the
  253.                   monitor. You can also use OSCAN_TEXT here.
  254.       OSCAN_STD   Standard overscan, it is also set in the preferences.
  255.                   The picture just fills up the entire monitor area.
  256.                   OSCAN_STANDARD may also be used.
  257.       OSCAN_MAX   Maximum Overscan, as fixed by the hardware.
  258.  
  259.     Lazytypers may leave out the _ or the OSCAN_.
  260.  
  261.     To select sizes different from these values, you may append a size
  262.     string to the Overscan, delimited by a colon ':'. In this case the
  263.     corresponding Overscan size is used and the appended size values are
  264.     _ADDED_ to the Overscan size.
  265.  
  266.  
  267.     For techies:
  268.  
  269.       [[OSCAN[_]](NORM|TXT|TEXT|STD|STANDARD|MAX):][[left,top,]width,height]
  270.  
  271.     So, this is what a complete SIZE definition might look like:
  272.  
  273.       SIZE=OSCAN_STD:-10,-10,+20,+20
  274.  
  275.     This results in a screen whose size exceeds the size of a standard
  276.     overscan by 10 pixels in each direction.
  277.  
  278.   1.1.7)  DISPCLIP:  Size of the visible area of the screen.
  279.     The same rules for formatting as in SIZE apply here.
  280.  
  281.   1.1.8)  COLORS:  This sets the color palette as RGB values.
  282.     They are entered as 3 or 6 digit hexadecimal values, separated
  283.     by commas. A leading '$' or '0x' must NOT appear here.
  284.  
  285.     Additionally the colors are accepted as colon-separated
  286.     decimals.
  287.  
  288.     So SM supports the following formats:
  289.       RGB |
  290.       RRGGBB |
  291.       [$|0x] RRRRRRRR ':' [$|0x] GGGGGGGGG ':' [$|0x] BBBBBBBB
  292.  
  293.     If every gun is less than 256 a 24 bit palette is assumed and every
  294.     gun is expanded to 32 bits.
  295.  
  296.     It is definitely advised that you take a look at the examples at the
  297.     end of the file :)
  298.  
  299.   1.1.9)  PENS:  Sets the pens used for rendering 3D effects.
  300.     Every pen is responsible for certain effects (Programmers should look
  301.     into the DrawInfo.Pens section of intuition/screens.h).
  302.  
  303.     Every character is interpreted as a hexadecimal index into the color
  304.     table that was set with the COLORS command. From this results that only
  305.     the first 16 color registers are usable.
  306.  
  307.     If you REALLY, REALLY need to access the remaining color registers, too,
  308.     leave the author a message. You don't have to specify ALL pens, but you
  309.     have to specify all pens up to the last one you want to specify.
  310.     Ehh..got it ? :}
  311.  
  312.     These are the definitions:
  313.  
  314.     Pen  Name             is used for...
  315.      1   DETAILPEN        ordinary text (compatible with 1.3)
  316.      2   BLOCKPEN         ordinary fill operations (compatible with 1.3)
  317.      3   TEXTPEN          ordinary labels
  318.      4   SHINEPEN         shiny edges on 3D objects
  319.      5   SHADOWPEN        dark edges on 3D objects
  320.      6   FILLPEN          background of highlighted elements \ e.g. active
  321.      7   FILLTEXTPEN      text in highlighted elements       / window border
  322.      8   BACKGROUNDPEN    background - must be set to 0
  323.      9   HIGHLIGHTTEXTPEN emphasized text
  324.     OS V3.0 offers these additional pens:
  325.      10  BARDETAILPEN     text in screen-bar
  326.      11  BARBLOCKPEN      background in screen-bar
  327.      12  BARTRIMPEN       trim under screen-bar
  328.  
  329.  
  330.     All this stuff might sound very difficult, and the result isn't always
  331.     easily predictable. I recommend you look at some of the examples below
  332.     to get an idea for how all this works.
  333.  
  334.   1.1.10)  NODRAG:  This flag prevents a screen from being dragged
  335.     around. If it is applied on a child screen (PARENT is set), then
  336.     the child cannot be moved inside its parent. This property is
  337.     V3.0 only.
  338.  
  339.   1.1.11)  EXCLUSIVE:  This screen will not share the view with any
  340.     other screens. This results in a behavior like the A2024-modes.
  341.     This flag is V3.0 only.
  342.  
  343.   1.1.12)  INTERLEAVED:  Requests interleaved bitmaps for this screen.
  344.     It should lead to faster scrolling. This feature is V3.0 only.
  345.  
  346.   1.1.13)  PARENT:  Specifies a parent screen for this screen making this
  347.     screen to a child screen.
  348.     The idea of child screens were introduced with OS V3.0. An child is
  349.     moved together with its parent when the parent is dragged. Additionally
  350.     a child screen can be moved independenty, but only within the bounds of
  351.     its parent.
  352.  
  353.   1.1.14)  FONT:  Sets the font that will become the screen's default font.
  354.     This may be a non-proportional font as well as a proportional font.
  355.     If the font cannot be found, the screen is still opened with the
  356.     system's default font (this is set with the 'Font' preferences
  357.     tool).
  358.  
  359.     The fontname extension '.font' is optional. Furthermore, you may
  360.     append the font pixel size to the name with .<size>, like in diamond.12
  361.  
  362.   1.1.15)  FONTSIZE:  Size of the font mentioned above.
  363.     Almost any value is possible here, since the new diskfont.library
  364.     will automatically scale the font if the desired size could not be
  365.     found.
  366.  
  367.     This option may give quite funny results with dumb programs!
  368.  
  369.   1.1.16)  CLOSEGAD:  Attaches a close gadget to the screen.
  370.     This puts a close gadget into the upper left corner of the screen.
  371.     This way you can simply close a screen with a mouse click just the
  372.     way you would close a window.
  373.  
  374.   1.1.17)  AUTOCLOSE:  Automatically closes a screen after usage.
  375.     If this option is given, the screen will automatically be closed as
  376.     soon as the last window on it was closed.
  377.  
  378.   1.1.18)  CX_TOFRONT:  Hotkey used to bring a screen to the front.
  379.     This defines a HotKey (we're talking about a shortcut here, not
  380.     about boiled or baked keyboards) by which the screen is put to front.
  381.  
  382.     The definition of the key name conforms to the commodities.library
  383.     standard. How such a key name is put together is described further
  384.     below in this document.
  385.  
  386.   1.1.19)  CX_DEFAULT:  Hotkey to make a screen the system's default screen.
  387.     This defines a hotkey by which the screen is made the system's default
  388.     screen. As well as with 1.1.18, the definitions of commodities.library
  389.     are used here, too. They are listed further below.
  390.  
  391.   1.1.20) CX_PRIORITY:  priority for above mentioned hotkeys.
  392.     If no value is given, a default value of 0 is used.
  393.  
  394.   1.1.21)  Other options.
  395.     Further options are
  396.  
  397.     SHANGHAI, NOSHANGHAI, POPPUB, NOPOPPUB, DEFAULT, TOFRONT and TOBACK.
  398.  
  399.     An explanation for these follows in a minute as they may also be used
  400.     without opening a screen.
  401.  
  402.   1.1.22)  FORCE: Switch off some security checks.
  403.     By activating this mode, you disable the internal checks if the hardware
  404.     of your machine can deal with the values for SIZE, DISPCLIP and PLANES
  405.     at all. If the computer displays some crap or even crashes, do NOT
  406.     send a bug report to C= or me - it was your fault !
  407.  
  408.   1.1.23)  QUIET: Suppress errors and warnings
  409.     This option disables all errors and warnings that are normally printed
  410.     to the console. It enables you to keep an console-window closed even if
  411.     an error occurs. The return codes are unaffected so you can still
  412.     check if the command was successful.
  413.  
  414.  
  415. 1.2)  CLOSE
  416.  
  417.   Closes a previously opened screen
  418.  
  419.   1.2.1)  NAME:  Name of the screen.
  420.     Upper/lowercase spelling of the name need not be exactly as in the
  421.     real name, but if there is more than one screen with a fitting name,
  422.     the first one that is found will be used. If the NAME matches exactly
  423.     with an existing name, that screen is certainly always used for
  424.     closing.
  425.  
  426.     If Angela Schmidt's 'pattern.library' is installed (to be found on
  427.     Fish disk 625 or the CD Meeting Pearls vol. #1), you may even use
  428.     a pattern - especially such patterns as 'wo*', which matches e.g.
  429.     'Workbench' !
  430.  
  431.     At the moment, there are three special names:
  432.       * selects the screen on which this process's console is situated
  433.       # addresses the frontmost screen - only valid if this is a PubScreen
  434.       . selects the system's default screen
  435.  
  436.     These names are valid with all other commands, except of course for the
  437.     OPEN command.
  438.  
  439.   1.2.2)  FORCE:  Will also close 'alien' screens.
  440.     By enabling this mode, you are able to close screens that have NOT
  441.     been opened by ScreenManager or the Workbench.
  442.  
  443.     However, the program that opened the screen will probably not be
  444.     informed about that. If some time later it tries to open a window
  445.     on that screen, a crash is imminent. It is also possible that resources
  446.     belonging to the screen (like fonts) are not freed.
  447.  
  448.   1.2.3)  QUIET: Suppress errors and warnings.
  449.     This option disables all errors and warnings that are normally printed
  450.     to the console. It enables you to keep an console-window closed even if
  451.     this screen does not exist or cannot be closed. The return codes are
  452.     unaffected so you can still check if the command was successful.
  453.  
  454.  
  455.  
  456. 1.3)  LIST
  457.  
  458.   Prints out a list of screens or resolutions.
  459.  
  460.   1.3.1)  <without parameters>: prints out a list of screens.
  461.     The screens' name, title, resolution, # of colors and # of visitor
  462.     windows or locks are printed.
  463.  
  464.     Behind these values you will see a <SM> if the screen was opened by
  465.     ScreenManager. You might also find a DEFAULT here if it's the system's
  466.     default screen, or PRIVATE if a screen is not public at the moment.
  467.  
  468.   1.3.2)  DISPID:  shows ALL possible resolutions
  469.     This shows all resolutions that are known to the system at the
  470.     moment. You may specify a pattern for the wanted DisplayIDs also.
  471.  
  472.     Also, the name and availability of each mode is given if they are
  473.     available.
  474.  
  475.   1.3.3)  MODE:  shows resolutions
  476.     Shows a list of those modes that are known to the system by name.
  477.     To show only some of the available modes it is possible to give
  478.     a pattern for the modes. If the pattern.library is present it will
  479.     be used to match the available modes to your pattern.
  480.  
  481.  
  482. 1.4)  INFO
  483.  
  484.   Provides information about a screen or a screen mode
  485.  
  486.   1.4.1)  <without parameters>: lists the currently valid public
  487.     screen modes.
  488.  
  489.   1.4.2)  NAME:  shows properties of a screen.
  490.     If a name is supplied, some infos about this screen, its resolution
  491.     and depth are listed. The special characters mentioned in the
  492.     CLOSE section are valid here, too.
  493.  
  494.   1.4.3)  DISPID/MODE:  provides information about screen modes.
  495.     If this option is supplied, the corresponding information is
  496.     given - what this means exactly is left to the reader as an exercise ;-)
  497.  
  498.     If you want information about more than one mode or DisplayID, you have
  499.     to specify a pattern for DISPID/MODE and to supply the additional keyword
  500.     LIST:
  501.  
  502.        ScreenManager INFO MODE PAL:#? LIST
  503.  
  504.  
  505.   1.4.4)  EXPERT:  Provide some more info.
  506.     This option may be added to all parameters of INFO. In that case the
  507.     entire structures NameInfo, DisplayInfo, DimensionInfo and MonitorInfo
  508.     will be fully displayed.
  509.  
  510.   1.4.5)  QUIET: Suppress errors and warnings
  511.     This option disables all errors and warnings that are normally printed
  512.     to the console. It enables you to keep an console-window closed even if
  513.     there occurs an error. The return codes are unaffected so you may check
  514.     for the existence of a screen in this way:
  515.  
  516.        ScreenManager >NIL: INFO MyScreen QUIET
  517.        If ERROR
  518.          ...
  519.        EndIf
  520.  
  521.  
  522. 1.5) Modify previously opened screens
  523.  
  524.   The following options are used to modify the modes of an already opened
  525.   public screen. The screen's name has to be given. Once again, the same
  526.   special characters as in CLOSE are valid here, too.
  527.  
  528.   Certainly all these options may also be used for opening a new screen.
  529.  
  530.   1.5.1)  COLORS: supplementary modification of the color table.
  531.     This allows to change the colors of a screen after it has already
  532.     been opened. The description of the format can be found unter OPEN
  533.     (1.1.8).
  534.  
  535.     Colors of screens not opened by ScreenManager, can be changed only with
  536.     the keyword FORCE present.
  537.  
  538.     WATCH OUT ! If the colors of the Workbench screen are modified, the
  539.     IPrefs demon does not notice that - just as Intuition does not, either.
  540.     This may result in strange effects when using Prefs/Palette.
  541.  
  542.   1.5.2)  POS:  repositions the screen.
  543.     This is used to change the position of a screen. The format string
  544.     is POS=x,y.
  545.  
  546.   1.5.3)  PLANES:  changes the number of bitplanes of a screen.
  547.     This option permits to increase or reduce the number of
  548.     bitplanes a screen is using. This option is only valid if the
  549.     keyword FORCE is also given - otherwise only a warning is issued.
  550.  
  551.     Due to the fact that you do not know if the size of the corresponding
  552.     BitMap structure (which contains a pointer for every bitplane) is
  553.     sufficient for the requested number of planes, it MIGHT
  554.     happen that by increasing the number of planes unallocated memory is
  555.     overwritten, which may lead to a system crash. So be _VERY_ cautious
  556.     when using this option.
  557.  
  558.     It is not possible to increase the number of planes under OS 3.0 because
  559.     the preallocated colormaps may be to small to hold more data.
  560.  
  561.     THIS FEATURE IS AN ILLEGAL HACK! USE IT AT YOUR OWN RISK!
  562.  
  563.   1.5.4)  DEFAULT:  Makes a screen the system's default screen
  564.  
  565.   1.5.5)  TOFRONT:  Brings a screen to the front
  566.  
  567.   1.5.6)  TOBACK:  Brings a screen to the back
  568.  
  569.   1.5.7)  CX_TOFRONT:  changes the hotkey used to put a screen to the front.
  570.     By using the empty string (CX_TOFRONT="") this hotkey is disabled.
  571.  
  572.   1.5.8)  CX_DEFAULT:  changes the hotkey that is used to make a screen the
  573.     system's default screen. This hotkey may also be switched off by giving
  574.     an empty string "" as parameter.
  575.  
  576.  
  577. 1.6) Modification of global settings
  578.  
  579.   The following options affect global settings and may also be used without
  580.   dealing with a screen:
  581.  
  582.   1.6.1)  SHANGHAI:  turns on Shanghai mode.
  583.     This way, even those windows that would usually be opened on the
  584.     Workbench screen will open on the system's default screen.
  585.  
  586.     This helps to prevent old-style programs (those that don't know about
  587.     the concept of public screens) from plastering the Workbench screen
  588.     with their windows.
  589.  
  590.   1.6.2)  NOSHANGHAI:  turns off Shanghai mode.
  591.  
  592.   1.6.3)  POPPUB:  enables PopPub mode.
  593.     Now the screen comes to front as soon as a window is opened on it.
  594.  
  595.   1.6.4)  NOPOPPUB:  turns off PopPub mode.
  596.  
  597.  
  598.  
  599.  
  600.                                Examples
  601.                                --------
  602.  
  603. Here are some examples to make all the above information a little clearer
  604. for you:
  605.  
  606.   ScreenManager OPEN BlueScreen
  607.     DISPID=$00029004 PLANES=3 PENS=171657404 FONT=courier.13
  608.     SIZE=OSCAN_TEXT:+100,+100 DISPCLIP=OSCAN_TEXT
  609.     COLORS=13B,AAC,D30,FFF,CC2,015,7AF,13F
  610.     DEFAULT CLOSEGAD
  611.  
  612.   ScreenManager OPEN NobelScreen
  613.     PLANES=3 PENS=121657404
  614.     COLORS=9A6100,210:220:255,0533CC,0xFF:0xFF:0x14,DC0,730,F83,C30
  615.     CX_PRI=10 CX_TOFRONT="lcommand s" CX_DEFAULT="lcommand shift s"
  616.     DEFAULT SHANGHAI POPPUB CLOSEGAD
  617.  
  618.   ScreenManager OPEN ss TITLE NessieScreen
  619.     MODE=PAL:[Hh]i*[Ll]ace* PLANES=2 SIZE=STD:0×0 PENS=021123103
  620.     COLORS=69A,FEE,002,F7C
  621.     DEFAULT SHANGHAI CLOSEGAD CX_TOFRONT "LCommand s" POPUP
  622.  
  623.   ScreenManager OPEN SimpleWB
  624.     DEFAULT SHANGHAI POPPUB
  625.  
  626.   ScreenManager OPEN Child
  627.     SIZE=TEXT:+40,+40,-80,-80
  628.     CLOSEGAD PARENT SimpleWB
  629.  
  630.   ScreenManager LIST
  631.  
  632.   ScreenManager LIST MODE=NTSC:#?
  633.  
  634.   ScreenManager INFO DISPID=$00008020 EXPERT
  635.  
  636.   ScreenManager CLOSE Simple*
  637.  
  638. These commands have to be entered in _one_ input line - some of them were
  639. just split up here to make this document more readable.
  640.  
  641. To be able to open a window on such a screen, you certainly first have to
  642. find a program that makes use of the feature of public screens. This is at
  643. least true for the preferences programs 'Time' and 'Font' and for the
  644. console handler "CON:" (and, unfortunately incorrect, for IconEdit :-( ).
  645.  
  646. However, a console window may also be opened on a screen that is NOT the
  647. default screen:
  648.  
  649.   CON:0/15/640/185/MyWindow/CLOSE/SCREENNobelScreen.
  650.  
  651. This is certainly also correct for the display handler of WShell.
  652.  
  653.  
  654.                             Workbench
  655.                             ---------
  656.  
  657. To show some kind of mercy with those rare Workbench users ;-), ScreenManager
  658. is also able to accept ToolTypes as arguments.
  659.  
  660. These are treated almost exactly as command line parameters, but there
  661. are a few differences:
  662.  
  663.     NOSHANGHAI and NOPOPPUB
  664.  
  665.   do not exist any more. They have to be replaced by SHANGHAI=FALSE resp.
  666.   POPPUB=0.
  667.  
  668.   Also, there is one additional ToolType WINDOW. Its argument should be a
  669.   filename into which output messages e.g. from the LIST command go. A
  670.   valid file name would certainly also be the description of a window, like:
  671.  
  672.     CON:////ScreenManager-Output/CLOSE
  673.  
  674.   If WINDOW is not given, no window will be opened and all error-messages
  675.   will be sent to the user by utilizing requesters.
  676.  
  677. The ToolType arguments have to be entered WITHOUT enclosing parentheses
  678. because (contrary to command line parameters) it is directly visible where
  679. an argument ends.
  680.  
  681. If you click on a project icon which has ScreenManager as its default tool,
  682. the ToolTypes from ScreenManager will be taken as default values and may
  683. then be overridden by the ToolTypes from the project.
  684.  
  685. This way, you may create a project icon with a ToolType NAME=<ScreenName>
  686. for every screen that you make heavy use of (in my case this is a
  687. ShellScreen and the Workbench), and a ScreenManager icon with a DEFAULT
  688. tooltype.
  689.  
  690. If you now single-click on the project icon, and then double-click the
  691. ScreenManager's icon (while holding down the Shift key), the screen
  692. <ScreenName> will become the system's default screen.
  693.  
  694. So, depending on which pair of icons you double-click, either the ShellScreen
  695. or the Workbench screen will become the default screen. The same goes for
  696. POS, and voila - you've got a WBclick construction kit. :)
  697.  
  698.  
  699.                             Hotkeys
  700.                             -------
  701.  
  702. For those who haven't got their 2.0 manuals handy, here are the special
  703. settings of commodities from V37 (does not claim to be complete 8-):
  704.  
  705. Events:
  706.   rawkey, rawmouse, event, pointerpos,
  707.   timer, newprefs, diskremoved, diskinserted
  708.  
  709.   Most of these are not very useful, still they may show up as funny
  710.   experiments when e.g. a shell comes to the front as soon as you insert
  711.   a disk. Also, the Timer event is quite interesting due to the fact that
  712.   no other qualifier may be used alone. Still, I do not want to recommend
  713.   it. However, my opinion is that everyone should judge for himself
  714.   in how far he wants to configure his system to death - but he shouldn't
  715.   complain later then.
  716.  
  717. Qualifiers:
  718.   lshift, rshift, capslock, control, lalt, ralt, lcommand, rcommand,
  719.   numericpad, repeat, relativemouse, shift, caps, alt, upstroke
  720.  
  721. Keys:
  722.   (midbutton, rbutton, leftbutton)
  723.   comma, space, backspace, tab, enter, return, esc, del
  724.   up, down, right, left
  725.   f1, f2, f3, f4, f5, f6, f7, f8, f9, f10
  726.   help
  727.   as well as all usual printable characters which then represent themselves.
  728.  
  729. A Hotkey definition from these items looks like this:
  730.   [<Qualifier> <Qualifier> ... ] <Event>|<Key>
  731.  
  732. As in the CLI the <Space> character is also the separator between keywords,
  733. the expression has to be enclosed in double quotes like this:
  734.  
  735.   CX_TOFRONT="lcommand s"
  736.   CX_DEFAULT="lcommand shift s" or CX_DEFAULT="lcommand S"
  737.  
  738. All names may be given in upper or lower case. Of course, the Shift key has
  739. to be pressed then for uppercase letters if the qualifier Shift is not
  740. given (as in the second example above).
  741.  
  742.  
  743.                             At the end
  744.                             ----------
  745. Thanks go to: Hmmm..the translator...who feels funny translating this :)
  746. More thanks to Angela Schmidt for bug reports and suggestions.
  747.  
  748. I would also like to thank:
  749.   Bernd Ernesti
  750.   Frank Schwarz
  751.   Oliver Knorr
  752.  
  753. Any kind of bug reports, suggestions for improvement, congratulations,
  754. chocolate rum almonds, flames, etc. (NO letter bombs or pirate
  755. programs) should be sent to:
  756.  
  757.     zza@rz.uni-karlsruhe.de
  758.  
  759. or, by SnailMail:
  760.  
  761.     Bernhard Möllemann
  762.     Luisenstraße 17
  763.  
  764.     76137 Karlsruhe
  765.     Germany
  766.